import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: LIUYANJIAO
 * Date: 2024-11-15
 * Time: 17:04
 */
public class slousion2 {
    //二叉搜索树的创建
    public static class BTS{
        public class node{
            String couse;
            node left;
            node right;

            public node(String couse) {
                this.couse = couse;
            }

        }
        node root;
        public BTS() {
            this.root = null;
        }
        public void createtreechild(String s,node root){

            if(s.compareTo(root.couse)>0){
                if(root.right==null){
                    root.right=new node(s);
                    return;
                }
                createtreechild(s,root.right);
            }
            if(s.compareTo(root.couse)<0){
                if(root.left==null){
                    root.left=new node(s);
                    return;
                }
                createtreechild(s,root.left);
            }
        }
        //给定一个数组，将数组中的数插入到二叉搜索树中，完成二叉搜索树的创建

        public node createtree(String[] arr,node root){
            for (int i = 0; i < arr.length; i++) {
                if(root==null) root=new node(arr[i]);
                else createtreechild(arr[i],root);
            }
            return root;
        }
        public boolean findkey(node root,String key){
            if(root==null) return false;
            if(root.couse.equals(key)) return true;
            if(root.couse.compareTo(key)>0) return findkey(root.left,key);
            if(root.couse.compareTo(key)<0) return findkey(root.right,key);
            return false;
        }
    }

    public static void main(String[] args) {
        //创建二叉搜索树
        BTS bts=new BTS();
        String[] arr=new String[7];
        arr= new String[]{"计算机导论", "数字逻辑与计算机组成", "数据结构与算法", "程序设计与问题求解", "离散数学"};
        System.out.println(Arrays.toString(arr));
        BTS.node root=bts.createtree(arr,bts.root);
        //二叉搜索树的查找
        System.out.println("是否存在数据结构与算法："+bts.findkey(root, "数据结构与算法"));
        System.out.println("是否存在高等数学："+bts.findkey(root, "高等数学"));
    }
}
